docker |
您所在的位置:网站首页 › docker mysql57 配置文件 › docker |
docker-compose.yml 中设置了 mysql 的 root 密码未生效
问题解决方案注
问题
使用docker-compose创建mysql服务器时,docker-compose.yml配置如下: version: '3.0' services: mysql: restart: always image: mysql:5.7.23 container_name: mysql ports: - 3306:3306 environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: rootpwd MYSQL_USER: user MYSQL_PASS: userpwd command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128M --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO" volumes: - /home/mysql/data:/var/lib/mysql - /home/mysql/conf/my.cnf:/etc/my.cnf:ro - /home/mysql/init:/docker-entrypoint-initdb.d/在相应目录下运行 docker-compose up -d再进入容器内部 docker exec -it mysql /bin/bash尝试登陆mysql [root@i ~]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)发现并不能登陆mysql,出现的问题在于docker-compose中的密码设置无效,导致用户无法登陆。 解决方案1、修改my.cnf 文件,在[mysqld]下添加 skip-grant-tables2、进入容器内部登陆mysql [root@i ~]# docker exec -it mysql /bin/bash3、登陆mysql [root@/ ~]# mysql mysql>4、修改root用户密码 mysql>update mysql.user set authentication_string=password('xxxx') where user='root';注:mysql 4.6版本以上的mysql服务器password改为authentication_string;所以用‘update mysql.user set password=password(‘xxxx’) where user=‘root’;’无法修改用户密码,切记!!!!!!!! 5、退出登陆,并删除my.cnf文件中的‘skip-grant-tables’ 6、重启mysql docker restart mysql7、重新登陆,登陆成功! 注mysql 4.6版本以上的mysql服务器password改为authentication_string;所以用‘update mysql.user set password=password(‘xxxx’) where user=‘root’;’无法修改用户密码,切记!!!!!!!! 提醒下用户user的密码设置也无效,请重新设置!! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |